summaryrefslogtreecommitdiff
path: root/src/pages/shop/lob/[slug].jsx
blob: cdaf3c917e5a65f31409b20ffc9eecf912da2c3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import _ from 'lodash';
import dynamic from 'next/dynamic';
import { useRouter } from 'next/router';
import Seo from '@/core/components/Seo';
import { getIdFromSlug, getNameFromSlug } from '@/core/utils/slug';
import Breadcrumb from '../../../lib/lob/components/Breadcrumb';
import { useEffect, useState } from 'react';
import odooApi from '@/core/api/odooApi';
import { div } from 'lodash-contrib';

const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout'));
const ProductSearch = dynamic(() => import('@/lib/product/components/ProductSearch'));
const CategorySection = dynamic(() => import('@/lib/product/components/CategorySection'));

export default function CategoryDetail() {
  const router = useRouter();
  const { slug = '', page = 1 } = router.query;
  const [dataLob, setDataLob] = useState([]);
  const [finalQuery, setFinalQuery] = useState({});
  const [dataCategoriesProduct, setDataCategoriesProduct] = useState([])
  const [data, setData] = useState([])
  const dataIdCategories = []
  
  const categoryName = getNameFromSlug(slug);
  const lobId = getIdFromSlug(slug);
  const q = router?.query.q || null;

  useEffect(() => {
    if(router.pathname.includes('lob')){
      const loadProduct = async () => {
        const lobData = await odooApi('GET', `/api/v1/lob_homepage/${lobId}/category_id`);
         
        if (lobData) {
          setDataLob(lobData);
        }
      };
      loadProduct();
      
    }
  }, [lobId]);

  useEffect(() => {
     if (router.pathname.includes('lob')){
      
      const fetchCategoryData = async () => {
        if (dataLob[0]?.categoryIds) {
          
          for (const cate of dataLob[0].categoryIds) {
           
            dataIdCategories.push(cate.childId)
          }
          
        
          setData(dataIdCategories.flat())
         
          // const newQuery = {
          //   fq: `category_id_ids:(${mergedArray.join(' OR ')})`,
          //   category : router.query.category? router.query.category : '',
          //   page : router.query.page? router.query.page : 1,
          //   brand : router.query.brand? router.query.brand : '',
          //   priceFrom,
          //   priceTo,
          //   limit,
          //   orderBy
          // };
       
          // setFinalQuery(newQuery);
         
        }
      };
      fetchCategoryData();
    }
  }, [dataCategoriesProduct, dataLob]);
  const query = {
    fq: `category_id_ids:(${data.join(' OR ')})`,
    page,
  };
  if (q) {
    query.q = q;
  }

  return (
    <BasicLayout>
      <Seo
        title={`Beli ${categoryName} di Indoteknik`}
        description={`Jual ${categoryName} Kirim Jakarta Surabaya Semarang Makassar Manado Denpasar Balikpapan Medan Palembang Lampung Bali Bandung Makassar Manado.`}
        additionalMetaTags={[
          {
            property: 'keywords',
            content: `Jual ${categoryName}, harga ${categoryName}, ${categoryName} murah, toko ${categoryName}, ${categoryName} jakarta, ${categoryName} surabaya`,
          },
        ]}
      />

      <Breadcrumb categoryId={getIdFromSlug(slug)} />
      <div className='grid grid-cols-3'>
        {dataLob[0]?.categoryIds && (
          <div>
            <image></image>
          </div>
        )}
      </div>

      {!_.isEmpty(router.query) && (
        <ProductSearch query={query} categories={getIdFromSlug(slug)} prefixUrl={`/shop/lob/${slug}`} />
      )}
    </BasicLayout>
  );
}